package com.rs.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ZhClassesExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ZhClassesExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andClIdIsNull() {
            addCriterion("cl_id is null");
            return (Criteria) this;
        }

        public Criteria andClIdIsNotNull() {
            addCriterion("cl_id is not null");
            return (Criteria) this;
        }

        public Criteria andClIdEqualTo(Integer value) {
            addCriterion("cl_id =", value, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdNotEqualTo(Integer value) {
            addCriterion("cl_id <>", value, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdGreaterThan(Integer value) {
            addCriterion("cl_id >", value, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("cl_id >=", value, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdLessThan(Integer value) {
            addCriterion("cl_id <", value, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdLessThanOrEqualTo(Integer value) {
            addCriterion("cl_id <=", value, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdIn(List<Integer> values) {
            addCriterion("cl_id in", values, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdNotIn(List<Integer> values) {
            addCriterion("cl_id not in", values, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdBetween(Integer value1, Integer value2) {
            addCriterion("cl_id between", value1, value2, "clId");
            return (Criteria) this;
        }

        public Criteria andClIdNotBetween(Integer value1, Integer value2) {
            addCriterion("cl_id not between", value1, value2, "clId");
            return (Criteria) this;
        }

        public Criteria andClUidIsNull() {
            addCriterion("cl_uid is null");
            return (Criteria) this;
        }

        public Criteria andClUidIsNotNull() {
            addCriterion("cl_uid is not null");
            return (Criteria) this;
        }

        public Criteria andClUidEqualTo(Integer value) {
            addCriterion("cl_uid =", value, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidNotEqualTo(Integer value) {
            addCriterion("cl_uid <>", value, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidGreaterThan(Integer value) {
            addCriterion("cl_uid >", value, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidGreaterThanOrEqualTo(Integer value) {
            addCriterion("cl_uid >=", value, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidLessThan(Integer value) {
            addCriterion("cl_uid <", value, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidLessThanOrEqualTo(Integer value) {
            addCriterion("cl_uid <=", value, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidIn(List<Integer> values) {
            addCriterion("cl_uid in", values, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidNotIn(List<Integer> values) {
            addCriterion("cl_uid not in", values, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidBetween(Integer value1, Integer value2) {
            addCriterion("cl_uid between", value1, value2, "clUid");
            return (Criteria) this;
        }

        public Criteria andClUidNotBetween(Integer value1, Integer value2) {
            addCriterion("cl_uid not between", value1, value2, "clUid");
            return (Criteria) this;
        }

        public Criteria andClTimeIsNull() {
            addCriterion("cl_time is null");
            return (Criteria) this;
        }

        public Criteria andClTimeIsNotNull() {
            addCriterion("cl_time is not null");
            return (Criteria) this;
        }

        public Criteria andClTimeEqualTo(Date value) {
            addCriterion("cl_time =", value, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeNotEqualTo(Date value) {
            addCriterion("cl_time <>", value, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeGreaterThan(Date value) {
            addCriterion("cl_time >", value, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("cl_time >=", value, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeLessThan(Date value) {
            addCriterion("cl_time <", value, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeLessThanOrEqualTo(Date value) {
            addCriterion("cl_time <=", value, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeIn(List<Date> values) {
            addCriterion("cl_time in", values, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeNotIn(List<Date> values) {
            addCriterion("cl_time not in", values, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeBetween(Date value1, Date value2) {
            addCriterion("cl_time between", value1, value2, "clTime");
            return (Criteria) this;
        }

        public Criteria andClTimeNotBetween(Date value1, Date value2) {
            addCriterion("cl_time not between", value1, value2, "clTime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeIsNull() {
            addCriterion("cl_endtime is null");
            return (Criteria) this;
        }

        public Criteria andClEndtimeIsNotNull() {
            addCriterion("cl_endtime is not null");
            return (Criteria) this;
        }

        public Criteria andClEndtimeEqualTo(Date value) {
            addCriterion("cl_endtime =", value, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeNotEqualTo(Date value) {
            addCriterion("cl_endtime <>", value, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeGreaterThan(Date value) {
            addCriterion("cl_endtime >", value, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("cl_endtime >=", value, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeLessThan(Date value) {
            addCriterion("cl_endtime <", value, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeLessThanOrEqualTo(Date value) {
            addCriterion("cl_endtime <=", value, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeIn(List<Date> values) {
            addCriterion("cl_endtime in", values, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeNotIn(List<Date> values) {
            addCriterion("cl_endtime not in", values, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeBetween(Date value1, Date value2) {
            addCriterion("cl_endtime between", value1, value2, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClEndtimeNotBetween(Date value1, Date value2) {
            addCriterion("cl_endtime not between", value1, value2, "clEndtime");
            return (Criteria) this;
        }

        public Criteria andClNameIsNull() {
            addCriterion("cl_name is null");
            return (Criteria) this;
        }

        public Criteria andClNameIsNotNull() {
            addCriterion("cl_name is not null");
            return (Criteria) this;
        }

        public Criteria andClNameEqualTo(String value) {
            addCriterion("cl_name =", value, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameNotEqualTo(String value) {
            addCriterion("cl_name <>", value, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameGreaterThan(String value) {
            addCriterion("cl_name >", value, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameGreaterThanOrEqualTo(String value) {
            addCriterion("cl_name >=", value, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameLessThan(String value) {
            addCriterion("cl_name <", value, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameLessThanOrEqualTo(String value) {
            addCriterion("cl_name <=", value, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameLike(String value) {
            addCriterion("cl_name like", value, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameNotLike(String value) {
            addCriterion("cl_name not like", value, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameIn(List<String> values) {
            addCriterion("cl_name in", values, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameNotIn(List<String> values) {
            addCriterion("cl_name not in", values, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameBetween(String value1, String value2) {
            addCriterion("cl_name between", value1, value2, "clName");
            return (Criteria) this;
        }

        public Criteria andClNameNotBetween(String value1, String value2) {
            addCriterion("cl_name not between", value1, value2, "clName");
            return (Criteria) this;
        }

        public Criteria andClStudentnumIsNull() {
            addCriterion("cl_studentNum is null");
            return (Criteria) this;
        }

        public Criteria andClStudentnumIsNotNull() {
            addCriterion("cl_studentNum is not null");
            return (Criteria) this;
        }

        public Criteria andClStudentnumEqualTo(Integer value) {
            addCriterion("cl_studentNum =", value, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumNotEqualTo(Integer value) {
            addCriterion("cl_studentNum <>", value, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumGreaterThan(Integer value) {
            addCriterion("cl_studentNum >", value, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumGreaterThanOrEqualTo(Integer value) {
            addCriterion("cl_studentNum >=", value, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumLessThan(Integer value) {
            addCriterion("cl_studentNum <", value, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumLessThanOrEqualTo(Integer value) {
            addCriterion("cl_studentNum <=", value, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumIn(List<Integer> values) {
            addCriterion("cl_studentNum in", values, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumNotIn(List<Integer> values) {
            addCriterion("cl_studentNum not in", values, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumBetween(Integer value1, Integer value2) {
            addCriterion("cl_studentNum between", value1, value2, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClStudentnumNotBetween(Integer value1, Integer value2) {
            addCriterion("cl_studentNum not between", value1, value2, "clStudentnum");
            return (Criteria) this;
        }

        public Criteria andClLpgidIsNull() {
            addCriterion("cl_lpgid is null");
            return (Criteria) this;
        }

        public Criteria andClLpgidIsNotNull() {
            addCriterion("cl_lpgid is not null");
            return (Criteria) this;
        }

        public Criteria andClLpgidEqualTo(Integer value) {
            addCriterion("cl_lpgid =", value, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidNotEqualTo(Integer value) {
            addCriterion("cl_lpgid <>", value, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidGreaterThan(Integer value) {
            addCriterion("cl_lpgid >", value, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidGreaterThanOrEqualTo(Integer value) {
            addCriterion("cl_lpgid >=", value, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidLessThan(Integer value) {
            addCriterion("cl_lpgid <", value, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidLessThanOrEqualTo(Integer value) {
            addCriterion("cl_lpgid <=", value, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidIn(List<Integer> values) {
            addCriterion("cl_lpgid in", values, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidNotIn(List<Integer> values) {
            addCriterion("cl_lpgid not in", values, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidBetween(Integer value1, Integer value2) {
            addCriterion("cl_lpgid between", value1, value2, "clLpgid");
            return (Criteria) this;
        }

        public Criteria andClLpgidNotBetween(Integer value1, Integer value2) {
            addCriterion("cl_lpgid not between", value1, value2, "clLpgid");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }

        public Criteria andClNameLikeInsensitive(String value) {
            addCriterion("upper(cl_name) like", value.toUpperCase(), "clName");
            return this;
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}